Software applications in modern enterprise data processing environments typically constitute many thousands of lines of source code and implement complex functionality. For example, the Apache web server, a widely available, open source web server, comprises at least 80,000 lines of source code. The Linux operating system, exceeds 1.6 million lines of source code. Testing such software products is a time-consuming task. Testing of software involves the invocation of the program functionality, and, typically, validating the correctness of the results of that functionality.
The testing of software includes the execution of one or more testcases which are designed to exercise the operations that implement the functionality of the software under task. The testcases are run to verify that the software under test does not fail for the testcase conditions, and additionally verify that the output generated is correct.
Generally, software testing includes activities that are performed by members of the software development team, and other activities that are automated, that is, performed by another software program.
Data processing systems, particularly in an enterprise environment, typically constitute a networked data processing system in which a set of commonly-accessed resources provide services to a multiplicity of users attached to the network. These services may include electronic mail (e-mail) services, Internet access, distributed computing services, input/output services, such as printing, etc. Moreover, the software deployed to provide such services as well as to access those services may be deployed across a multiplicity of platforms, that is, operating systems. Corresponding thereto, in the testing of a software product, may be desirable to run testcases across multiple hosts and platforms. Such a multihost testcase includes multiple testcase processes. Additionally, multiple testcase processes may run on a single host.
The testcases typically include multiple software files containing executable code and data. The set of files to execute the testcase on a particular host may depend on the host and runtime environment. The runtime environment may include the operating system deployed on the particular host, program environment (byte-code interpreted, such as Java or native) and the results of prior testcase runs.
The acquisition and deployment of the files to effect a particular testcase run on each host may represent a substantial effort in the software test cycle.
Consequently, there is a need in the art for systems and methods to automate the acquisition and deployment of software testcase files, particularly across multiple hosts and runtime environments.